From: Carlos Garnacho Date: Wed, 6 Dec 2017 13:44:16 +0000 (+0100) Subject: ibusCandidatePopup: Feed OSK suggestions from ibus panel candidates X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~994^2^2~78 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a2303c527295fbc5db42326a0118611afc915f9f;p=gnome-shell.git ibusCandidatePopup: Feed OSK suggestions from ibus panel candidates We don't currently hide the ibus completion panel, and this is done from within the popup that we are meant to hide itself, so thoroughly sucks. --- diff --git a/js/ui/ibusCandidatePopup.js b/js/ui/ibusCandidatePopup.js index 1571224e6..43626af87 100644 --- a/js/ui/ibusCandidatePopup.js +++ b/js/ui/ibusCandidatePopup.js @@ -253,10 +253,18 @@ var CandidatePopup = new Lang.Class({ for (let i = 0; indexLabel = lookupTable.get_label(i); ++i) indexes.push(indexLabel.get_text()); + Main.keyboard.resetSuggestions(); + let candidates = []; - for (let i = startIndex; i < endIndex; ++i) + for (let i = startIndex; i < endIndex; ++i) { candidates.push(lookupTable.get_candidate(i).get_text()); + Main.keyboard.addSuggestion(lookupTable.get_candidate(i).get_text(), Lang.bind(this, function() { + let index = i; + this._panelService.candidate_clicked(index, 1, 0); + })); + } + this._candidateArea.setCandidates(indexes, candidates, cursorPos % pageSize, @@ -277,6 +285,7 @@ var CandidatePopup = new Lang.Class({ panelService.connect('focus-out', Lang.bind(this, function(ps) { this._boxPointer.hide(BoxPointer.PopupAnimation.NONE); + Main.keyboard.resetSuggestions(); })); }, @@ -287,9 +296,10 @@ var CandidatePopup = new Lang.Class({ }, _updateVisibility: function() { - let isVisible = (this._preeditText.visible || - this._auxText.visible || - this._candidateArea.actor.visible); + let isVisible = (!Main.keyboard.visible && + (this._preeditText.visible || + this._auxText.visible || + this._candidateArea.actor.visible)); if (isVisible) { this._boxPointer.setPosition(Main.layoutManager.dummyCursor, 0);